import requests

def change_video_state(camera_name: str, video_name: str, state: int) -> dict:
    """
    修改视频状态接口调用方法
    
    参数:
    camera_name (str): 摄像头名称（如："高新区xx摄像头"）
    video_name (str): 视频名称（如："xx摄像头A视频"）
    state (int): 状态码（0: 开始跑，1: 跑完了）

    返回:
    dict: 接口响应数据

    异常:
    ValueError: 当状态码不符合要求时抛出
    """
    # 验证状态码有效性
    if state not in (0, 1):
        raise ValueError("状态码必须为 0 或 1")

    # 接口地址
    url = "http://192.168.0.142:80/aiApi/changeVideoState"
    
    # 构造查询参数
    params = {
        "cameraName": camera_name,
        "videoName": video_name,
        "state": state
    }

    try:
        # 发送 GET 请求（设置 10 秒超时）
        response = requests.get(url, params=params, timeout=10)
        
        # 检查 HTTP 状态码
        response.raise_for_status()
        
        # 尝试解析 JSON 响应
        return response.json()
    
    except requests.exceptions.RequestException as e:
        # 处理请求异常
        print(f"请求失败: {str(e)}")
        return {"error": str(e)}
    except ValueError as e:
        # 处理 JSON 解析异常
        print(f"响应解析失败: {str(e)}")
        return {"error": "Invalid response format"}

# # # 使用示例
# if __name__ == "__main__":
#     try:
#         result = change_video_state(
#             camera_name="chunk_0004",
#             video_name="chunk_0004",
#             state=1
#         )
#         print("接口响应:", result)
#     except ValueError as ve:
#         print(f"参数错误: {str(ve)}")
#     except Exception as e:
#         print(f"程序异常: {str(e)}")